/**
 *	@author: Kathleen Go
 *	date created: February 20, 2006
 *	version: 1.0
 * modified: April 13, 2006
 */

package text.ia;

import java.util.Vector;

public interface MorphologyProcessor{

	/**	Constructs the query that will perform Morphological Analysis on the given
	 *		word (strWord) and returns its root word.
	 * 
	 *	Returns the {@link Vector} of root words of strWord and the corresponding forms if vForWFW is true.
	 *
	 *	@param strWord a {@link String} whose root word is to be derived
	 *	@param cLookfor a char data indicating the language of strWord
	 *	@param bForWFW a boolean data indicating whether the result is to be used in
	 *		word-for-word translation or not (unit alignment)
	 *	@return the {@link Vector} containing the root words of strWord and the corresponding forms if vForWFW is true.
	 *		index 0 - Vector of root words of strWord
	 *		index 1 - Vector of forms associated with each root word in index 0
	 */
	public Vector wordMA(String strWord, char cLookFor, boolean bForWFW);
	
	/**	Constructs the query that will perform Morphological Generation on the given
	 *		root word (strWord) and returns its derivatives.
	 * 
	 *	Returns the {@link Vector} of derivatives of strWord.
	 *
	 *	@param strWord a {@link String} whose derivatives are to be generated
	 *	@param strForm a {@link String} indicating the form of strWord's derivative
	 *	@return the {@link Vector} containing the derivatives of strWord
	 */
	public Vector wordMG(String strWord, String strForm);
}